home *** CD-ROM | disk | FTP | other *** search
/ Danny Amor's Online Library / Danny Amor's Online Library - Volume 1.iso / html / faqs / faq / ai-faq / genetic.part2 < prev    next >
Encoding:
Text File  |  1995-07-25  |  48.2 KB  |  1,039 lines

  1. Subject: FAQ: comp.ai.genetic part 2/6 (A Guide to Frequently Asked Questions)
  2. Newsgroups: comp.ai.genetic,comp.answers,news.answers
  3. From: David.Beasley@cm.cf.ac.uk (David Beasley)
  4. Date: Tue, 20 Sep 94 09:05:37 GMT
  5.  
  6. Archive-name:   ai-faq/genetic/part2
  7. Last-Modified:  9/20/94
  8. Issue:          2.3
  9.  
  10.  
  11. TABLE OF CONTENTS OF PART 2
  12.      Q1: What are Evolutionary Algorithms (EAs)?
  13.      Q1.1: What's a Genetic Algorithm (GA)?
  14.      Q1.2: What's Evolutionary Programming (EP)?
  15.      Q1.3: What's an Evolution Strategy (ES)?
  16.      Q1.4: What's a Classifier System (CFS)?
  17.      Q1.5: What's Genetic Programming (GP)?
  18.  
  19. ----------------------------------------------------------------------
  20.  
  21. Subject: Q1: What are Evolutionary Algorithms (EAs)?
  22.  
  23.      Evolutionary  algorithms  use  computational  models  of evolutionary
  24.      processes as  key  elements  in  the  design  and  implementation  of
  25.      computer-based  problem  solving  systems.  A variety of evolutionary
  26.      computational  models  have  been  proposed.  They  share  a   common
  27.      conceptual  base of simulating the EVOLUTION of INDIVIDUAL structures
  28.      via  processes  of  SELECTION,  MUTATION,  and   REPRODUCTION.    The
  29.      processes  depend  on  the  perceived  PERFORMANCE  of the individual
  30.      structures as defined by an ENVIRONMENT.
  31.  
  32.      More precisely, EAs maintain a POPULATION of structures, that  evolve
  33.      according  to  rules  of  SELECTION  and  other  operators,  that are
  34.      referred to as "search operators", (or GENETIC  OPERATORs),  such  as
  35.      RECOMBINATION  and  MUTATION.   Each  INDIVIDUAL  in  the  population
  36.      receives a measure of it's FITNESS in the ENVIRONMENT.   REPRODUCTION
  37.      focuses  attention  on high fitness individuals, thus exploiting (cf.
  38.      EXPLOITATION) the available fitness information.   Recombination  and
  39.      mutation  perturb those individuals, providing general heuristics for
  40.      EXPLORATION.  Although simplistic from a biologist's viewpoint, these
  41.      algorithms  are  sufficiently  complex to provide robust and powerful
  42.      adaptive search mechanisms.
  43.  
  44.      --- "An Overview of Evolutionary Computation" [ECML93], 442-459.
  45.  
  46.  PSEUDO CODE
  47.      Algorithm EA is
  48.  
  49.       // start with an initial time
  50.       t := 0;
  51.  
  52.       // initialize a usually random population of individuals
  53.       initpopulation P (t);
  54.  
  55.       // evaluate fitness of all initial individuals in population
  56.       evaluate P (t);
  57.  
  58.       // test for termination criterion (time, fitness, etc.)
  59.       while not done do
  60.  
  61.            // increase the time counter
  62.            t := t + 1;
  63.  
  64.            // select sub-population for offspring production
  65.            P' := selectparents P (t);
  66.  
  67.            // recombine the "genes" of selected parents
  68.            recombine P' (t);
  69.  
  70.            // perturb the mated population stochastically
  71.            mutate P' (t);
  72.  
  73.            // evaluate it's new fitness
  74.            evaluate P' (t);
  75.  
  76.            // select the survivors from actual fitness
  77.            P := survive P,P' (t);
  78.       od
  79.      end EA.
  80.  
  81. ------------------------------
  82.  
  83. Subject: Q1.1: What's a Genetic Algorithm (GA)?
  84.  
  85.      The GENETIC ALGORITHM is a model of machine  learning  which  derives
  86.      its behavior from a metaphor of the processes of EVOLUTION in nature.
  87.      This is done by the creation within a  machine  of  a  POPULATION  of
  88.      INDIVIDUALs represented by CHROMOSOMEs, in essence a set of character
  89.      strings that are analogous to the base-4 chromosomes that we  see  in
  90.      our  own  DNA.   The  individuals in the population then go through a
  91.      process of evolution.
  92.  
  93.      We should note that EVOLUTION (in nature or anywhere else) is  not  a
  94.      purposive  or  directed  process.   That  is, there is no evidence to
  95.      support the assertion that  the  goal  of  evolution  is  to  produce
  96.      Mankind.  Indeed,  the  processes  of  nature  seem  to  boil down to
  97.      different INDIVIDUALs competing for  resources  in  the  ENVIRONMENT.
  98.      Some are better than others. Those that are better are more likely to
  99.      survive and propagate their genetic material.
  100.  
  101.      In nature, we see that  the  encoding  for  our  genetic  information
  102.      (GENOME)  is  done in a way that admits asexual REPRODUCTION (such as
  103.      by budding) typically  results  in  OFFSPRING  that  are  genetically
  104.      identical  to the PARENT.  Sexual REPRODUCTION allows the creation of
  105.      genetically radically different offspring that are still of the  same
  106.      general flavor (SPECIES).
  107.  
  108.      At  the  molecular level what occurs (wild oversimplification alert!)
  109.      is that a pair of CHROMOSOMEs bump into one another, exchange  chunks
  110.      of  genetic  information  and  drift apart. This is the RECOMBINATION
  111.      operation, which GA/GPers generally refer to as CROSSOVER because  of
  112.      the  way  that  genetic  material crosses over from one chromosome to
  113.      another.
  114.  
  115.      The CROSSOVER operation happens in an ENVIRONMENT where the SELECTION
  116.      of  who  gets to mate is a function of the FITNESS of the INDIVIDUAL,
  117.      i.e. how good the individual is  at  competing  in  its  environment.
  118.      Some  GENETIC ALGORITHMs use a simple function of the fitness measure
  119.      to  select  individuals  (probabilistically)   to   undergo   genetic
  120.      operations  such  as  crossover  or  REPRODUCTION (the propagation of
  121.      genetic   material   unaltered).    This   is   fitness-proportionate
  122.      selection.   Other  implementations  use  a  model  in  which certain
  123.      randomly selected individuals in a subgroup compete and  the  fittest
  124.      is  selected.  This is called tournament selection and is the form of
  125.      selection we see in nature when stags rut to vie for the privilege of
  126.      mating  with  a herd of hinds. The two processes that most contribute
  127.      to EVOLUTION are crossover and fitness based  selection/reproduction.
  128.  
  129.      As it turns out, there are mathematical proofs that indicate that the
  130.      process of FITNESS  proportionate  REPRODUCTION  is,  in  fact,  near
  131.      optimal in some senses.
  132.  
  133.      MUTATION  also  plays  a  role  in this process, though it is not the
  134.      dominant role that  is  popularly  believed  to  be  the  process  of
  135.      EVOLUTION,  i.e.  random  mutation  and  survival  of the fittest. It
  136.      cannot be stressed too strongly that  the  GENETIC  ALGORITHM  (as  a
  137.      SIMULATION  of  a  genetic  process)  is  not  a  random search for a
  138.      solution to a problem (highly fit INDIVIDUAL).  The genetic algorithm
  139.      uses  stochastic  processes,  but the result is distinctly non-random
  140.      (better than random).
  141.  
  142.      GENETIC ALGORITHMs are used for a  number  of  different  application
  143.      areas.  An  example  of  this  would be multidimensional OPTIMIZATION
  144.      problems in which the character string of the CHROMOSOME can be  used
  145.      to encode the values for the different parameters being optimized.
  146.  
  147.      In  practice,  therefore,  we  can  implement  this  genetic model of
  148.      computation by having arrays of bits or characters to  represent  the
  149.      CHROMOSOMEs.    Simple   bit   manipulation   operations   allow  the
  150.      implementation of CROSSOVER, MUTATION and other operations.  Although
  151.      a  substantial  amount  of  research  has been performed on variable-
  152.      length strings and  other  structures,  the  majority  of  work  with
  153.      GENETIC  ALGORITHMs is focussed on fixed-length character strings. We
  154.      should focus on both this aspect of fixed-lengthness and the need  to
  155.      encode the representation of the solution being sought as a character
  156.      string, since these are  crucial  aspects  that  distinguish  GENETIC
  157.      PROGRAMMING,  which  does  not have a fixed length representation and
  158.      there is typically no encoding of the problem.
  159.  
  160.      When the GENETIC ALGORITHM is implemented it is  usually  done  in  a
  161.      manner  that  involves  the following cycle:  Evaluate the FITNESS of
  162.      all of the INDIVIDUALs in the POPULATION.  Create a new population by
  163.      performing   operations   such  as  CROSSOVER,  fitness-proportionate
  164.      REPRODUCTION and MUTATION on the individuals whose fitness  has  just
  165.      been  measured.  Discard the old population and iterate using the new
  166.      population.
  167.  
  168.      One iteration of this loop is referred to as a GENERATION.  There  is
  169.      no  theoretical  reason for this as an implementation model.  Indeed,
  170.      we do not see this punctuated behavior in POPULATIONs in nature as  a
  171.      whole, but it is a convenient implementation model.
  172.  
  173.      The  first  GENERATION  (generation  0) of this process operates on a
  174.      POPULATION of randomly generated INDIVIDUALs.   From  there  on,  the
  175.      genetic  operations,  in concert with the FITNESS measure, operate to
  176.      improve the population.
  177.  
  178.  PSEUDO CODE
  179.      Algorithm GA is
  180.  
  181.       // start with an initial time
  182.       t := 0;
  183.  
  184.       // initialize a usually random population of individuals
  185.       initpopulation P (t);
  186.  
  187.       // evaluate fitness of all initial individuals of population
  188.       evaluate P (t);
  189.  
  190.       // test for termination criterion (time, fitness, etc.)
  191.       while not done do
  192.  
  193.            // increase the time counter
  194.            t := t + 1;
  195.  
  196.            // select a sub-population for offspring production
  197.            P' := selectparents P (t);
  198.  
  199.            // recombine the "genes" of selected parents
  200.            recombine P' (t);
  201.  
  202.            // perturb the mated population stochastically
  203.            mutate P' (t);
  204.  
  205.            // evaluate it's new fitness
  206.            evaluate P' (t);
  207.  
  208.            // select the survivors from actual fitness
  209.            P := survive P,P' (t);
  210.       od
  211.      end GA.
  212.  
  213. ------------------------------
  214.  
  215. Subject: Q1.2: What's Evolutionary Programming (EP)?
  216.  
  217.   Introduction
  218.      EVOLUTIONARY  PROGRAMMING  is  a  stochastic  OPTIMIZATION   strategy
  219.      similar   to  GENETIC  ALGORITHMs,  but  which  dispenses  with  both
  220.      "genomic" (GENOME like)  representations  and  with  CROSSOVER  as  a
  221.      search strategy.
  222.  
  223.      Like  GENETIC  ALGORITHMs,  the EP technique is useful for optimizing
  224.      problem solutions when other  techniques  like  gradient  descent  or
  225.      direct,  analytical  discovery  are  not  possible.  Combinatoric and
  226.      real-valued FUNCTION OPTIMIZATION in which the  OPTIMIZATION  surface
  227.      or  FITNESS  landscape  is  "rugged", possessing many locally optimal
  228.      solutions, are well-suited for the EP technique.
  229.  
  230.   History
  231.      The 1966 book, "Artificial Intelligence Through Simulated  Evolution"
  232.      by   Fogel,   Owens   and  Walsh  is  the  landmark  publication  for
  233.      applications of the EP technique.  In the work, automata were evolved
  234.      to predict symbol strings generated from Markov processes.
  235.  
  236.      In  1992, the First Annual Conference on EVOLUTIONARY PROGRAMMING was
  237.      held in La Jolla, CA.  Further conferences were held in 1993 and 1994
  238.      (See  Q12).   The  first  conference  attracted  a  diverse  group of
  239.      academic,  commericial  and  military  researchers  engaged  in  both
  240.      developing  the  theory  of  the EP technique and in applying EP to a
  241.      wide range of OPTIMIZATION problems.
  242.  
  243.      Rather than list and analyze the sources in detail, I  have  included
  244.      several fundamental sources below which should serve as good pointers
  245.      to the entire body of work in the field.
  246.  
  247.   The Process
  248.      For EP, like GAs, there is an underlying assumption  that  a  FITNESS
  249.      landscape  can be characterized in terms of variables, and that there
  250.      is an optimum solution in terms of those variables.  For example,  if
  251.      one  were  trying  to  find the shortest path in a Traveling Salesman
  252.      Problem, each solution would be a path.  The length of the path could
  253.      be  expressed  as  a  number,  which  would  serve  as the solution's
  254.      fitness.   The  fitness  landscape  for   this   problem   could   be
  255.      characterized as a hypersurface proportional to the path lengths in a
  256.      space of possible paths.  The goal would  be  to  find  the  globally
  257.      shortest path in that space.
  258.  
  259.      The  basic  EP  method involves 3 steps (Repeat until a threshold for
  260.      iteration is exceeded or an adequate solution is obtained):
  261.  
  262.      (1)  Choose an initial POPULATION of trial solutions at random.   The
  263.       number  of  solutions  in a population is highly relevant to the
  264.       speed of OPTIMIZATION, but no definite answers are available  as
  265.       to  how  many  solutions are appropriate (other than >1) and how
  266.       many solutions are just wasteful.
  267.  
  268.      (2)  Each solution is replicated into  a  new  POPULATION.   Each  of
  269.       these   OFFSPRING   solutions   are   mutated   according  to  a
  270.       distribution of MUTATION types, ranging from  minor  to  extreme
  271.       with a continuum of mutation types between.
  272.  
  273.      (3)  Each  OFFSPRING  solution is assessed by computing it's FITNESS.
  274.       The  N  best  solutions,  or  *stochastically*  N  of  the  best
  275.       solutions, are retained for the next POPULATION of solutions.
  276.  
  277.   EP and GAs
  278.      There  are two important ways in which the EP method differs from the
  279.      GA technique.
  280.  
  281.      First, there is no constraint on the representation.  The typical  GA
  282.      approach  involves  encoding  the  problem  solutions  as a string of
  283.      representative  tokens,  the  GENOME.   In  the  EP   approach,   the
  284.      representation  follows  from  the  problem.  A neural network can be
  285.      represented in the same manner as it  is  implemented,  for  example,
  286.      because the MUTATION operation does not demand a linear encoding.
  287.  
  288.      Second, the MUTATION operation simply changes aspects of the solution
  289.      according  to  a  statistical  distribution   which   weights   minor
  290.      variations in OFFSPRING as highly probable and substantial variations
  291.      as increasingly unlikely as the global optimum is approached.   There
  292.      is  a  certain  tautology  here: if the global optimum is not already
  293.      known, how can the spread of the mutation operation be damped as  the
  294.      solutions  approach  it?   Several  techniques have been proposed and
  295.      implemented which address this difficulty, the  most  widely  studied
  296.      being  the  "Meta-Evolutionary" technique (see References, below ) in
  297.      which the  variance  of  the  mutation  distribution  is  subject  to
  298.      mutation by a fixed variance mutation operator and evolves along with
  299.      the solution.
  300.  
  301.   Evolution and Sex: The Argumentative Side of EP
  302.      CROSSOVER  as  an  abstraction  of  sexual  RECOMBINATION  has   been
  303.      questioned on several fronts by the EP community.
  304.  
  305.      The  strongest  criticisms  have  been  raised by Atmar (1992) in his
  306.      introductory papers in the first EP conference proceedings as well as
  307.      his  substantially  biological  "On  the  Role  of  Males"  in Animal
  308.      Behavior (1991).  Atmar criticizes the use of terminology, indicating
  309.      that  "crossing-over"  is  a  process that occurs prior to sex during
  310.      meiotic cell division and its actual role in EVOLUTION is not clearly
  311.      understood.  More than just simple semantics, he argues a reversal of
  312.      the common assumption that sex acts as an accelerator  of  diversity,
  313.      instead casting sex as a mechanism for expunging genetic defects from
  314.      the germline.
  315.  
  316.      Atmar additionally argues that simplistic encodings of parameters for
  317.      OPTIMIZATION in GENETIC ALGORITHMs where one "trait" is equivalent to
  318.      one symbol pattern in the GENOME misrepresents the process of natural
  319.      SELECTION  and  miscontrues  cause and effect.  He argues instead for
  320.      selection at the phenotypic level.  He characterizes the EP  approach
  321.      as  being  "top down" in that expressed variation at the level of the
  322.      PHENOTYPE is selected without concern for the representation at lower
  323.      levels, while the GA approach "celebrates" coding details potentially
  324.      to the exclusion of arriving at optimal solutions.
  325.  
  326.      Several empirical evaluations of the value  of  CROSSOVER  have  been
  327.      reported,  all  of  which  suggest that the value of crossover is not
  328.      clear.
  329.  
  330.      References
  331.  
  332.      Some references to proceedings,  books  and  journal  articles  which
  333.      provide  an  excellent  introduction  (by  no means extensive) to the
  334.      field, include:
  335.  
  336.      Fogel, LJ, Owens, AJ and Walsh, MJ  (1966)  "Artificial  Intelligence
  337.      Through Simulated Evolution" John Wiley and Sons, NY. (primary)
  338.  
  339.      Fogel,  DB  and  Atmar,  JW,  (eds.) (1992) "Proceedings of the First
  340.      Annual   Conference   on   Evolutionary   Programming"   Evolutionary
  341.      Programming Society, San Diego, CA. (primary) [ACEP1]
  342.  
  343.      Fogel,  DB,  Fogel,  LJ,  Atmar, JW and Fogel, GB, (1992) "Hierarchic
  344.      Methods of Evolutionary Programming" in [ACEP1] (Meta-Evolutionary)
  345.  
  346.      Atmar, JW (1991) "On the Role of Males" Animal  Behavior,  Vol.   41,
  347.      195-205. (biological)
  348.  
  349.      Ambati, BK, Ambati, J and Mokhtar, MM (1991) "Heuristic Combinatorial
  350.      Optimization by Simulated  Darwinian  Evolution:  A  Polynomial  Time
  351.      Algorithm for the Traveling Salesman Problem" Biological Cybernetics,
  352.      Vol. 65, 31-35. (mathematical)
  353.  
  354.      Fogel,  DB,  Fogel,  LJ  and  Atmar,  JW  (1991)   "Meta-Evolutionary
  355.      Programming" and . . .
  356.  
  357.      Sebald, AV, Schlenzig, J and Fogel, DB (1991) "Minimax Design of CMAC
  358.      Neural Controllers Using Evolutionary Programming"  (practical)  both
  359.      in Proc. 25th Asilomar Conf. on Signals, Systems and Computers, Chen,
  360.      RR (ed.), Pacific Grove, CA, pp 551-555.
  361.  
  362.  PSEUDO CODE
  363.      Algorithm EP is
  364.  
  365.       // start with an initial time
  366.       t := 0;
  367.  
  368.       // initialize a usually random population of individuals
  369.       initpopulation P (t);
  370.  
  371.       // evaluate fitness of all initial individuals of population
  372.       evaluate P (t);
  373.  
  374.       // test for termination criterion (time, fitness, etc.)
  375.       while not done do
  376.  
  377.            // increase the time counter
  378.            t := t + 1;
  379.  
  380.            // perturb the whole population stochastically
  381.            P' := mutate P (t);
  382.  
  383.            // evaluate it's new fitness
  384.            evaluate P' (t);
  385.  
  386.            // select the survivors from actual fitness
  387.            P := survive P,P' (t);
  388.       od
  389.      end EP.
  390.  
  391.      It should be pointed out that EP does not  use  any  CROSSOVER  as  a
  392.      GENETIC OPERATOR.
  393.  
  394. ------------------------------
  395.  
  396. Subject: Q1.3: What's an Evolution Strategy (ES)?
  397.  
  398.      In  1963 two students at the Technical University of Berlin (TUB) met
  399.      and were soon to collaborate  on  experiments  which  used  the  wind
  400.      tunnel  of  the Institute of Flow Engineering.  During the search for
  401.      the optimal shapes of bodies in a flow, which was then  a  matter  of
  402.      laborious  intuitive  experimentation,  the  idea  was  conceived  of
  403.      proceeding strategically.  However, attempts with the coordinate  and
  404.      simple  gradient  strategies  (cf Q5) were unsuccessful.  Then one of
  405.      the  students,  Ingo  Rechenberg,  now  Professor  of   Bionics   and
  406.      Evolutionary  Engineering, hit upon the idea of trying random changes
  407.      in the parameters  defining  the  shape,  following  the  example  of
  408.      natural  MUTATIONs.   The  EVOLUTION  STRATEGY  was  born.   A  third
  409.      student, Peter Bienert, joined them and started the  construction  of
  410.      an  automatic  experimenter, which would work according to the simple
  411.      rules of mutation  and  SELECTION.   The  second  student,  Hans-Paul
  412.      Schwefel,  set  about  testing the efficiency of the new methods with
  413.      the help of a Zuse Z23 computer; for there were plenty of  objections
  414.      to these "random strategies."
  415.  
  416.      In spite of an occasional lack of financial support, the Evolutionary
  417.      Engineering Group which had been formed held  firmly  together.  Ingo
  418.      Rechenberg  received  his  doctorate  in  1970  (Rechenberg  73).  It
  419.      contains the theory of the two  membered  EVOLUTION  STRATEGY  and  a
  420.      first proposal for a multimembered strategy which in the nomenclature
  421.      introduced here is of the (m+1) type.   In the  same  year  financial
  422.      support  from  the  Deutsche  Forschungsgemeinschaft  (DFG, Germany's
  423.      National Science Foundation) enabled the work, that was concluded, at
  424.      least  temporarily,  in 1974 with the thesis "Evolutionsstrategie und
  425.      numerische Optimierung" (Schwefel 77).
  426.  
  427.      Thus,  EVOLUTION  STRATEGIEs  were  invented   to   solve   technical
  428.      OPTIMIZATION  problems  (TOPs)  like  e.g.  constructing  an  optimal
  429.      flashing nozzle, and until recently  ES  were  only  known  to  civil
  430.      engineering  folks, as an alternative to standard solutions.  Usually
  431.      no closed form analytical objective function is  available  for  TOPs
  432.      and   hence,  no  applicable  optimization  method  exists,  but  the
  433.      engineer's intuition.
  434.  
  435.      The first attempts to imitate principles of organic  EVOLUTION  on  a
  436.      computer  still resembled the iterative OPTIMIZATION methods known up
  437.      to that time (cf Q5):  In a two-membered  or  (1+1)  ES,  one  PARENT
  438.      generates   one   OFFSPRING   per  GENERATION  by  applying  NORMALLY
  439.      DISTRIBUTED MUTATIONs, i.e. smaller steps occur more likely than  big
  440.      ones,  until  a child performs better than its ancestor and takes its
  441.      place. Because of this  simple  structure,  theoretical  results  for
  442.      STEPSIZE control and CONVERGENCE VELOCITY could be derived. The ratio
  443.      between successful and all mutations should  come  to  1/5:  the  so-
  444.      called  1/5  SUCCESS RULE was discovered. This first algorithm, using
  445.      mutation only, has then been  enhanced  to  a  (m+1)  strategy  which
  446.      incorporated  RECOMBINATION  due  to  several,  i.e.  m parents being
  447.      available. The mutation scheme and  the  exogenous  stepsize  control
  448.      were taken across unchanged from  (1+1) ESs.
  449.  
  450.      Schwefel  later  generalized these strategies to the multimembered ES
  451.      now denoted by (m+l) and (m,l) which  imitates  the  following  basic
  452.      principles  of  organic  EVOLUTION:  a  POPULATION,  leading  to  the
  453.      possibility  of  RECOMBINATION  with  random  mating,  MUTATION   and
  454.      SELECTION.   These  strategies  are  termed  PLUS  STRATEGY and COMMA
  455.      STRATEGY, respectively: in the plus case, the parental GENERATION  is
  456.      taken into account during selection, while in the comma case only the
  457.      OFFSPRING undergoes selection, and the PARENTs die off. m (usually  a
  458.      lowercase mu, denotes the population size, and l, usually a lowercase
  459.      lambda denotes the number of offspring generated per generation).  Or
  460.      to  put  it  in  an  utterly  insignificant  and  hopelessly outdated
  461.      language:
  462.  
  463.       (define (Evolution-strategy population)
  464.         (if (terminate? population)
  465.           population
  466.           (evolution-strategy
  467.         (select
  468.           (cond (plus-strategy?
  469.               (union (mutate
  470.                    (recombine population))
  471.                  population))
  472.             (comma-strategy?
  473.               (mutate
  474.                 (recombine population))))))))
  475.  
  476.      However, dealing with ES is sometimes seen as "strong  tobacco,"  for
  477.      it takes a decent amount of probability theory and applied STATISTICS
  478.      to understand the inner workings of an ES, while it navigates through
  479.      the  hyperspace  of  the  usually  n-dimensional  problem  space,  by
  480.      throwing hyperelipses into the deep...
  481.  
  482.      Luckily, this medium doesn't allow for  much  mathematical  ballyhoo;
  483.      the  author  therefore  has  to come up with a simple but brilliantly
  484.      intriguing explanation to save the reader from falling asleep  during
  485.      the rest of this section, so here we go:
  486.  
  487.      Imagine a black box. A large black box. As large as, say for example,
  488.      a Coca-Cola vending machine. Now, [..] (to be continued)
  489.  
  490.      A single INDIVIDUAL of the ES' POPULATION consists of  the  following
  491.      GENOTYPE representing a point in the SEARCH SPACE:
  492.  
  493.      OBJECT VARIABLES
  494.       Real-valued  x_i  have to be tuned by RECOMBINATION and MUTATION
  495.       such that an objective  function  reaches  its  global  optimum.
  496.       Referring   to   the  metaphor  mentioned  previously,  the  x_i
  497.       represent the regulators of the alien Coka-Cola vending machine.
  498.  
  499.      STRATEGY VARIABLEs
  500.       Real-valued  s_i  (usually denoted by a lowercase sigma) or mean
  501.       STEPSIZEs determine the mutability of the  x_i.  They  represent
  502.       the STANDARD DEVIATION of a  (0, s_i) GAUSSIAN DISTRIBUTION (GD)
  503.       being added to each x_i as  an  undirected  MUTATION.   With  an
  504.       "expectancy  value"  of  0  the  PARENTs will produce OFFSPRINGs
  505.       similar to themselves on average. In order to  make  a  doubling
  506.       and  a  halving  of  a stepsize equally probable, the s_i mutate
  507.       log-normally, distributed, i.e.   exp(GD),  from  GENERATION  to
  508.       generation.    These  stepsizes  hide  the  internal  model  the
  509.       POPULATION has made of its ENVIRONMENT, i.e.  a  SELF-ADAPTATION
  510.       of the stepsizes has replaced the exogenous control of the (1+1)
  511.       ES.
  512.  
  513.       This concept works because SELECTION  sooner  or  later  prefers
  514.       those  INDIVIDUALs  having  built  a good model of the objective
  515.       function, thus  producing  better  OFFSPRING.   Hence,  learning
  516.       takes place on two levels: (1) at the genotypic, i.e. the object
  517.       and STRATEGY VARIABLE level and (2)  at  the  phenotypic  level,
  518.       i.e. the FITNESS level.
  519.  
  520.       Depending  on  an  individual's  x_i,  the  resulting  objective
  521.       function value f(x), where x denotes  the  vector  of  objective
  522.       variables,  serves  as  the PHENOTYPE (FITNESS) in the SELECTION
  523.       step. In a PLUS STRATEGY, the m best of  all  (m+l)  INDIVIDUALs
  524.       survive to become the PARENTs of the next GENERATION.  Using the
  525.       comma variant, selection takes place only among the l OFFSPRING.
  526.       The   second   scheme  is  more  realistic  and  therefore  more
  527.       successful, because no individual  may  survive  forever,  which
  528.       could  at  least  theoretically  occur  using  the plus variant.
  529.       Untypical for conventional OPTIMIZATION algorithms and lavish at
  530.       first    sight,   a   COMMA   STRATEGY   allowing   intermediate
  531.       deterioration performs better! Only  by  forgetting  highly  fit
  532.       individuals  can  a  permanent  adaptation of the STEPSIZEs take
  533.       place and avoid long stagnation phases due to misadapted  s_i's.
  534.       This  means  that these individuals have built an internal model
  535.       that is no longer appropriate for  further  progress,  and  thus
  536.       should better be discarded.
  537.  
  538.       By   choosing  a  certain  ratio  m/l,  one  can  determine  the
  539.       convergence property of the EVOLUTION STRATEGY: If one  wants  a
  540.       fast,  but  local  convergence,  one  should choose a small HARD
  541.       SELECTION, ratio, e.g.  (5,100),  but  looking  for  the  global
  542.       optimum, one should favour a softer SELECTION (15,100).
  543.  
  544.       SELF-ADAPTATION  within  ESs  depends  on  the  following agents
  545.       (Schwefel 87):
  546.  
  547.      Randomness:
  548.       One cannot model MUTATION as a purely random process. This would
  549.       mean that a child is completely independent of its PARENTs.
  550.  
  551.      POPULATION
  552.       size:  The POPULATION has to be sufficiently large. Not only the
  553.       current best should be allowed to reproduce, but a set  of  good
  554.       INDIVIDUALs.    Biologists   have  coined  the  term  "requisite
  555.       variety" to mean the genetic  variety  necessary  to  prevent  a
  556.       SPECIES   from   becoming  poorer  and  poorer  genetically  and
  557.       eventually dying out.
  558.  
  559.      COOPERATION:
  560.       In order to exploit the effects of a POPULATION  (m  >  1),  the
  561.       INDIVIDUALs should recombine their knowledge with that of others
  562.       (cooperate)  because  one  cannot  expect   the   knowledge   to
  563.       accumulate in the best individual only.
  564.  
  565.      Deterioration:
  566.       In  order to allow better internal models (STEPSIZEs) to provide
  567.       better progress in the future, one should  accept  deterioration
  568.       from  one  GENERATION to the next. A limited life-span in nature
  569.       is not a sign of failure, but an important means of preventing a
  570.       SPECIES from freezing genetically.
  571.  
  572.       ESs  prove  to  be  successful  when compared to other iterative
  573.       methods on a large number of test problems (Schwefel 77).   They
  574.       are  adaptable  to nearly all sorts of problems in OPTIMIZATION,
  575.       because they need very little  information  about  the  problem,
  576.       esp.  no  derivatives  of  the objective function. For a list of
  577.       some 300 applications of EAs, see the SyS-2/92 report (cf  Q14).
  578.       ESs   are  capable  of  solving  high  dimensional,  multimodal,
  579.       nonlinear  problems   subject   to   linear   and/or   nonlinear
  580.       constraints.   The  objective  function  can  also,  e.g. be the
  581.       result of a SIMULATION, it does not have to be given in a closed
  582.       form.   This  also holds for the constraints which may represent
  583.       the outcome of, e.g. a finite elements method  (FEM).  ESs  have
  584.       been  adapted  to VECTOR OPTIMIZATION problems (Kursawe 92), and
  585.       they can also serve as a heuristic for NP-complete combinatorial
  586.       problems like the TRAVELLING SALESMAN PROBLEM or problems with a
  587.       noisy or changing response surface.
  588.  
  589.       References
  590.  
  591.       Kursawe,  F.  (1992)   "   Evolution   strategies   for   vector
  592.       optimization",  Taipei, National Chiao Tung University, 187-193.
  593.  
  594.       Kursawe, F. (1994) "  Evolution  strategies:  Simple  models  of
  595.       natural  processes?", Revue Internationale de Systemique, France
  596.       (to appear).
  597.  
  598.       Rechenberg,   I.   (1973)   "Evolutionsstrategie:    Optimierung
  599.       technischer Systeme nach Prinzipien der biologischen Evolution",
  600.       Stuttgart: Fromman-Holzboog.
  601.  
  602.       Schwefel,   H.-P.    (1977)    "Numerische    Optimierung    von
  603.       Computermodellen   mittels   der   Evolutionsstrategie",  Basel:
  604.       Birkhaeuser.
  605.       Schwefel, H.-P. (1987) "Collective  Phaenomena  in  Evolutionary
  606.       Systems",  31st  Annu.  Meet.  Inter'l  Soc.  for General System
  607.       Research, Budapest, 1025-1033.
  608.  
  609. ------------------------------
  610.  
  611. Subject: Q1.4: What's a Classifier System (CFS)?
  612.  
  613.  The name of the Game
  614.      First, a word on naming conventions is due, for no other paradigm  of
  615.      EC  has  undergone  more  changes  to  it's name space than this one.
  616.      Initially, Holland called his cognitive models  "Classifier  Systems"
  617.      abbrv. with CS, and sometimes CFS, as can be found in [GOLD89].
  618.  
  619.      Whence Riolo came into play in 1986 and Holland added a reinforcement
  620.      component to the overall design of a CFS, that emphasized its ability
  621.      to learn. So, the word "learning" was prepended to the name, to make:
  622.      "Learning Classifier Systems" (abbrv. to LCS).  On October 6-9,  1992
  623.      the  "1st Inter'l Workshop on Learning Classifier Systems" took place
  624.      at the NASA Johnson Space Center, Houston, TX.   A  summary  of  this
  625.      "summit"  of  all  leading  researchers in LCS can be found on ENCORE
  626.      (See Q15.3) in file CFS/papers/lcs92.ps.gz
  627.  
  628.      Today, the story continues, LCSs are sometimes subsumed under a "new"
  629.      machine   learning   paradigm   called   "Evolutionary  Reinforcement
  630.      Learning" or ERL for short, incorporating LCSs, "Q-Learning", devised
  631.      by Watkins (1989), and a paradigm of the same name, devised by Ackley
  632.      and Littman [ALIFEIII].
  633.  
  634.  On Schema Processors and ANIMATS
  635.      So, to get back to the question above, "What  are  CFSs?",  we  first
  636.      might  answer,  "Well,  there  are  many interpretations of Holland's
  637.      ideas...what do you like to know in particular?"  And then we'd start
  638.      with  a  recitation  from  [HOLLAND75,92], and explain all the SCHEMA
  639.      processors, the broadcast language, etc.  But, we will  take  a  more
  640.      comprehensive,  and  intuitive  way  to  understand  what  CLASSIFIER
  641.      SYSTEMs are all about.
  642.  
  643.      The easiest road to explore the very nature of CLASSIFIER SYSTEMs, is
  644.      to take the animat (ANIMAl + ROBOT = ANIMAT) "lane" devised by Booker
  645.      (1982) and later studied  extensively  by  Wilson  (1985),  who  also
  646.      coined  the  term for this approach. Work continues on animats but is
  647.      often  regarded  as  ARTIFICIAL   LIFE   rather   than   EVOLUTIONARY
  648.      COMPUTATION.   This  thread  of  research has even its own conference
  649.      series: "Simulation of Adaptive Behavior (SAB)" (cf  Q12),  including
  650.      other   notions   from   machine  learning,  connectionist  learning,
  651.      evolutionary robotics, etc.  [NB: the latter is obvious, if an animat
  652.      lives  in  a  digital microcosm, it can be put into the real world by
  653.      implantation   into   an   autonomous   robot   vehicle,   that   has
  654.      sensors/detectors   (camera   eyes,  whiskers,  etc.)  and  effectors
  655.      (wheels, robot arms, etc.); so  all  that's  needed  is  to  use  our
  656.      algorithm  as  the  "brain"  of this vehicle, connecting the hardware
  657.      parts with the software learning component.  For a fascinating  intro
  658.      to the field see, e.g. Braitenberg (1984)]
  659.  
  660.      CLASSIFIER  SYSTEMs,  however,  are  yet  another  offspring  of John
  661.      Holland's aforementioned book, and can be seen as one  of  the  early
  662.      applications  of  GAs,  for  CFSs  use this evolutionary algorithm to
  663.      adapt their behavior toward a changing ENVIRONMENT, as  is  explained
  664.      below in greater detail.
  665.  
  666.      Holland  envisioned  a  cognitive  system  capable of classifying the
  667.      goings on in its ENVIRONMENT, and then reacting to  these  goings  on
  668.      appropriately.  So  what is needed to build such a system? Obviously,
  669.      we need (1) an environment; (2) receptors that tell our system  about
  670.      the  goings  on;  (3)  effectors,  that let our system manipulate its
  671.      environment; and (4) the system itself, conveniently a "black box" in
  672.      this first approach, that has (2) and (3) attached to it, and "lives"
  673.      in (1).
  674.  
  675.      In the animat  approach,  (1)  usually  is  an  artificially  created
  676.      digital  world,  e.g.  in Booker's Gofer system, a 2 dimensional grid
  677.      that contains "food" and "poison".  And the Gofer itself, that  walks
  678.      across  this grid and tries (a) to learn to distinguish between these
  679.      two items, and (b) survive well fed.
  680.  
  681.      Much the same for Wilson's animat, called  "*".  Yes,  it's  just  an
  682.      asterisk,  and a "Kafka-esque naming policy" is one of the sign posts
  683.      of the whole field; e.g. the  first  implementation  by  Holland  and
  684.      Reitmann  1978  was  called CS-1, (cognitive system 1); Smith's Poker
  685.      player LS-1 (1980)  followed  this  "convention".  Riolo's  1988  LCS
  686.      implementations  on  top  of  his CFS-C library (cf Q20), were dubbed
  687.      FSW-1 (Finite State World 1), and LETSEQ-1 (LETter SEQuence predictor
  688.      1).
  689.  
  690.      So  from  the  latter  paragraph we can conclude that ENVIRONMENT can
  691.      also mean something completely different (e.g. an infinite stream  of
  692.      letters,  time  serieses,  etc.)  than  in  the  animat approach, but
  693.      anyway; we'll stick to it, and go on.
  694.  
  695.      Imagine a very simple animat, e.g. a  simplified  model  of  a  frog.
  696.      Now,  we  know  that  frogs  live  in (a) Muppet Shows, or (b) little
  697.      ponds; so we chose the latter as our demo ENVIRONMENT  (1);  and  the
  698.      former  for  a  non-Kafka-esque  name  of  our model, so let's dub it
  699.      "Kermit".
  700.  
  701.      Kermit has eyes, i.e. sensorial input detectors (2); hands and  legs,
  702.      i.e.    environment-manipulating   effectors  (3);  is  a  spicy-fly-
  703.      detecting-and-eating device, i.e. a frog (4); so we  got  all  the  4
  704.      pieces needed.
  705.  
  706.  Inside the Black Box
  707.      The most primitive "black box" we can think of is a computer.  It has
  708.      inputs (2), and outputs (3), and a message passing system  inbetween,
  709.      that  converts  (i.e.,  computes), certain input messages into output
  710.      messages, according to a set of rules, usually called  the  "program"
  711.      of that computer.  From the theory of computer science, we now borrow
  712.      the simplest of all program  structures,  that  is  something  called
  713.      "production  system"  or  PS  for  short.   A PS has been shown to be
  714.      computationally complete by Post (1943), that's why it  is  sometimes
  715.      called  a  "Post  System",  and  later by Minsky (1967).  Although it
  716.      merely consists of a set of if-then rules, it still resembles a full-
  717.      fledged computer.
  718.  
  719.      We  now  term  a  single  "if-then" rule a "classifier", and choose a
  720.      representation that makes it easy to manipulate these, for example by
  721.      encoding  them  into  binary  strings.   We  then  term  the  set  of
  722.      classifiers, a "classifier population", and immediately know  how  to
  723.      breed  new  rules  for  our  system:  just  use  a GA to generate new
  724.      rules/classifiers from the current POPULATION!
  725.  
  726.      All that's left are the messages  floating  through  the  black  box.
  727.      They  should also be simple strings of zeroes and ones, and are to be
  728.      kept in a data structure, we call "the message list".
  729.  
  730.      With all this given, we can imagine the goings on  inside  the  black
  731.      box as follows: The input interface (2) generates messages, i.e., 0/1
  732.      strings, that are written on the message list.  Then  these  messages
  733.      are  matched  against  the condition-part of all classifiers, to find
  734.      out which actions are to be triggered.   The  message  list  is  then
  735.      emptied,  and  the  encoded  actions,  themselves  just messages, are
  736.      posted to the message list.  Then, the output  interface  (3)  checks
  737.      the message list for messages concerning the effectors. And the cycle
  738.      restarts.
  739.  
  740.      Note, that it is possible in this set-up to have "internal messages",
  741.      because  the message list is not emptied after (3) has checked; thus,
  742.      the input interface messages are added to the initially  empty  list.
  743.      (cf Algorithm CFS, LCS below)
  744.  
  745.      The  general  idea  of  the  CFS is to start from scratch, i.e., from
  746.      tabula rasa  (without  any  knowledge)  using  a  randomly  generated
  747.      classifier  POPULATION,  and  let  the  system  learn  its program by
  748.      induction, (cf Holland et al. 1986), this reduces the input stream to
  749.      recurrent  input patterns, that must be repeated over and over again,
  750.      to enable the animat to classify its  current  situation/context  and
  751.      react on the goings on appropriately.
  752.  
  753.  What does it need to be a frog?
  754.      Let's  take a look at the behavior emitted by Kermit. It lives in its
  755.      digital microwilderness where it moves around  randomly.   [NB:  This
  756.      seemingly  "random"  behavior  is not that random at all; for more on
  757.      instinctive, i.e., innate behavior  of  non-artificial  animals  see,
  758.      e.g.  Tinbergen (1951)]
  759.  
  760.      Whenever  a  small flying object appears, that has no stripes, Kermit
  761.      should eat it, because it's very likely a spicy fly, or other  flying
  762.      insect.   If it has stripes, the insect is better left alone, because
  763.      Kermit had better not bother with wasps, hornets, or bees.  If Kermit
  764.      encounters a large, looming object, it immediately uses its effectors
  765.      to jump away, as far as possible.
  766.  
  767.      So, part of these behavior patterns within the "pond  world",  in  AI
  768.      sometimes called a "frame," from traditional knowledge representation
  769.      techniques, Rich (1983), can be expressed in a set of "if <condition>
  770.      then <action>" rules, as follows:
  771.  
  772.       IF small, flying object to the left THEN send @
  773.       IF small, flying object to the right THEN send %
  774.       IF small, flying object centered THEN send $
  775.       IF large, looming object THEN send !
  776.       IF no large, looming object THEN send *
  777.       IF * and @ THEN move head 15 degrees left
  778.       IF * and % THEN move head 15 degrees right
  779.       IF * and $ THEN move in direction head pointing
  780.       IF ! THEN move rapidly away from direction head pointing
  781.  
  782.      Now,  this set of rules has to be encoded for use within a CLASSIFIER
  783.      SYSTEM.  A possible encoding of the above rule set in  CFS-C  (Riolo)
  784.      classifier   terminology.   The   condition   part  consists  of  two
  785.      conditions, that are combined with a logical AND, thus  must  be  met
  786.      both  to  trigger  the  associated action. This structure needs a NOT
  787.      operation, (so we get NAND, and know from hardware  design,  that  we
  788.      can  build  any computer solely with NANDs), in CFS-C this is denoted
  789.      by the `~' prefix character (rule #5).
  790.  
  791.       IF             THEN
  792.        0000,  00 00  00 00
  793.        0000,  00 01  00 01
  794.        0000,  00 10  00 10
  795.        1111,  01 ##  11 11
  796.       ~1111,  01 ##  10 00
  797.        1000,  00 00  01 00
  798.        1000,  00 01  01 01
  799.        1000,  00 10  01 10
  800.        1111,  ## ##  01 11
  801.  
  802.      Obviously, string `0000' denotes small, and `00' in the fist part  of
  803.      the  second  column,  denotes flying.  The last two bits of column #2
  804.      encode the direction of the  object  approaching,  where  `00'  means
  805.      left, `01' means right, etc.
  806.  
  807.      In  rule  #4  a the "don't care symbol" `#' is used, that matches `1'
  808.      and `0',  i.e.,  the  position  of  the  large,  looming  object,  is
  809.      completely   arbitrary.   A  simple  fact,  that  can  save  Kermit's
  810.      (artificial) life.
  811.  
  812.  PSEUDO CODE (Non-Learning CFS)
  813.      Algorithm CFS is
  814.  
  815.       // start with an initial time
  816.       t := 0;
  817.  
  818.       // an initially empty message list
  819.       initMessageList ML (t);
  820.  
  821.       // and a randomly generated population of classifiers
  822.       initClassifierPopulation P (t);
  823.  
  824.       // test for cycle termination criterion (time, fitness, etc.)
  825.       while not done do
  826.  
  827.            // increase the time counter
  828.            t := t + 1;
  829.  
  830.            // 1. detectors check whether input messages are present
  831.            ML := readDetectors (t);
  832.  
  833.            // 2. compare ML to the classifiers and save matches
  834.            ML' := matchClassifiers ML,P (t);
  835.  
  836.            // 3. process new messages through output interface
  837.            ML := sendEffectors ML' (t);
  838.       od
  839.      end CFS.
  840.  
  841.      To convert the previous, non-learning CFS into a learning  CLASSIFIER
  842.      SYSTEM,  LCS,  as  has  been proposed in Holland (1986), it takes two
  843.      steps:
  844.  
  845.      (1)   the major cycle has to be changed such that the  activation  of
  846.        each  classifier depends on some additional parameter, that can
  847.        be modified as a result of experience, i.e. reinforcement  from
  848.        the ENVIRONMENT;
  849.  
  850.      (2)   and/or  change  the  contents  of  the  classifier  list, i.e.,
  851.        generate  new  classifiers/rules,  by  removing,   adding,   or
  852.        combining condition/action-parts of existing classifiers.
  853.  
  854.        The algorithm thus changes accordingly:
  855.  
  856.  PSEUDO CODE (Learning CFS)
  857.      Algorithm LCS is
  858.  
  859.       // start with an initial time
  860.       t := 0;
  861.  
  862.       // an initially empty message list
  863.       initMessageList ML (t);
  864.  
  865.       // and a randomly generated population of classifiers
  866.       initClassifierPopulation P (t);
  867.  
  868.       // test for cycle termination criterion (time, fitness, etc.)
  869.       while not done do
  870.  
  871.            // increase the time counter
  872.            t := t + 1;
  873.  
  874.            // 1. detectors check whether input messages are present
  875.            ML := readDetectors (t);
  876.  
  877.            // 2. compare ML to the classifiers and save matches
  878.            ML' := matchClassifiers ML,P (t);
  879.  
  880.            // 3. highest bidding classifier(s) collected in ML' wins the
  881.            // "race" and post the(ir) message(s)
  882.            ML' := selectMatchingClassifiers ML',P (t);
  883.  
  884.            // 4. tax bidding classifiers, reduce their strength
  885.            ML' := taxPostingClassifiers ML',P (t);
  886.  
  887.            // 5. effectors check new message list for output msgs
  888.            ML := sendEffectors ML' (t);
  889.  
  890.            // 6. receive payoff from environment (REINFORCEMENT)
  891.            C := receivePayoff (t);
  892.  
  893.            // 7. distribute payoff/credit to classifiers (e.g. BBA)
  894.            P' := distributeCredit C,P (t);
  895.  
  896.            // 8. Eventually (depending on t), an EA (usually a GA) is
  897.            // applied to the classifier population
  898.            if criterion then
  899.             P := generateNewRules P' (t);
  900.            else
  901.             P := P'
  902.       od
  903.      end LCS.
  904.  
  905.  What's the problem with CFSs?
  906.      Just  to list the currently known problems that come with CFSs, would
  907.      take some additional pages; therefore only  some  interesting  papers
  908.      dealing  with  unresolved riddles are listed; probably the best paper
  909.      containing most of these is the aforementioned  summary  of  the  LCS
  910.      Workshop:
  911.  
  912.      Smith,  R.E.  (1992) "A report on the first Inter'l Workshop on LCSs"
  913.      avail. from ENCORE (See Q15.3) in file CFS/papers/lcs92.ps.gz
  914.  
  915.      Other noteworthy critiques on LCSs include:
  916.  
  917.      Wilson, S.W. (1987)  "Classifier  Systems  and  the  Animat  Problem"
  918.      Machine Learning, 2.
  919.  
  920.      Wilson,  S.W.  (1988)  "Bid Competition and Specificity Reconsidered"
  921.      Complex Systems, 2(5):705-723.
  922.  
  923.      Wilson, S.W. & Goldberg, D.E. (1989) "A critical review of classifier
  924.      systems" [ICGA89], 244-255.
  925.  
  926.      Goldberg,  D.E., Horn, J. & Deb, K. (1992) "What makes a problem hard
  927.      for a classifier system?"  (containing the Goldberg  citation  below)
  928.      is    also    available    from    ENCORE   (See   Q15.3)   in   file
  929.      CFS/papers/lcs92-2.ps.gz
  930.  
  931.      Dorigo, M. (1993) "Genetic  and  Non-genetic  Operators  in  ALECSYS"
  932.      Evolutionary  Computation,  1(2):151-164.   The technical report, the
  933.      journal article is based on is avail. from ENCORE (See Q15.3) in file
  934.      CFS/papers/icsi92.ps.gz
  935.      Smith,  R.E.  Forrest,  S.  &  Perelson,  A.S.  (1993) "Searching for
  936.      Diverse,   Cooperative   POPULATIONs   with    Genetic    Algorithms"
  937.      Evolutionary Computation, 1(2):127-149.
  938.  
  939.  Conclusions?
  940.      Generally speaking:
  941.       "There's much to do in CFS research!"
  942.  
  943.      No  other  notion of EC provides more space to explore and if you are
  944.      interested in a PhD in the field, you might want  to  take  a  closer
  945.      look  at  CFS.   However,  be warned!, to quote Goldberg: "classifier
  946.      systems  are  a  quagmire---a  glorious,  wondrous,   and   inventing
  947.      quagmire, but a quagmire nonetheless."
  948.  
  949.      References
  950.  
  951.      Booker, L.B. (1982) "Intelligent behavior as an adaption to the  task
  952.      environment" PhD Dissertation, Univ. of Michigan, Logic of  Computers
  953.      Group, Ann Arbor, MI.
  954.  
  955.      Braitenberg,   V.   (1984)   "Vehicles:   Experiments   in  Synthetic
  956.      Psychology" Boston, MA: MIT Press.
  957.  
  958.      Holland, J.H. (1986)  "Escaping  Brittleness:  The  possibilities  of
  959.      general-purpose  learning  algorithms  applied to parallel rule-based
  960.      systems". In: R.S. Michalski, J.G. Carbonell & T.M.  Mitchell  (eds),
  961.      Machine  Learning:  An  Artificial  Intelligence  approach,  Vol  II,
  962.      593-623, Los Altos, CA: Morgan Kaufman.
  963.  
  964.      Holland, J.H., et al.  (1986)  "Induction:  Processes  of  Inference,
  965.      Learning, and Discovery", Cambridge, MA: MIT Press.
  966.  
  967.      Holland,  J.H.  (1992) "Adaptation in natural and artificial systems"
  968.      Boston, MA: MIT Press.
  969.  
  970.      Holland, J.H. & Reitman, J.S.  (1978)  "Cognitive  Systems  based  on
  971.      Adaptive  Algorithms" In D.A. Waterman & F.Hayes-Roth, (eds) Pattern-
  972.      directed inference systems. NY: Academic Press.
  973.  
  974.      Minsky,  M.L.   (1961)   "Steps   toward   Artificial   Intelligence"
  975.      Proceedings  IRE, 49, 8-30. Reprinted in E.A. Feigenbaum & J. Feldman
  976.      (eds) Computers and Thought, 406-450, NY: McGraw-Hill, 1963.
  977.  
  978.      Minsky, M.L.  (1967)  "Computation:  Finite  and  Infinite  Machines"
  979.      Englewood Cliffs, NJ: Prentice-Hall.
  980.  
  981.      Post,  Emil L. (1943) "Formal reductions of the general combinatorial
  982.      decision problem" American Journal of Mathematics, 65, 197-215.
  983.  
  984.      Rich, E. (1983) "Artificial Intelligence" NY: McGraw-Hill.
  985.  
  986.      Tinbergen, N. (1951) "The Study of Instinct" NY: Oxford Univ.  Press.
  987.  
  988.      Watkins,  C. (1989) "Learning from Delayed Rewards" PhD Dissertation,
  989.      Department of Psychology, Cambridge Univ., UK.
  990.  
  991.      Wilson, S.W. (1985) "Knowledge growth in  an  artificial  animal"  in
  992.      [ICGA85], 16-23.
  993.  
  994. ------------------------------
  995.  
  996. Subject: Q1.5: What's Genetic Programming (GP)?
  997.  
  998.      GENETIC PROGRAMMING is the extension of the genetic model of learning
  999.      into the space of programs. That is, the objects that constitute  the
  1000.      POPULATION   are  not  fixed-length  character  strings  that  encode
  1001.      possible solutions to the problem at hand, they  are  programs  that,
  1002.      when  executed,  "are"  the candidate solutions to the problem. These
  1003.      programs are expressed in genetic programming as parse trees,  rather
  1004.      than  as lines of code.  Thus, for example, the simple program "a + b
  1005.      * c" would be represented as:
  1006.  
  1007.          +
  1008.         / \
  1009.         a  *
  1010.          / \
  1011.          b  c
  1012.  
  1013.      or, to be precise, as suitable data  structures  linked  together  to
  1014.      achieve this effect. Because this is a very simple thing to do in the
  1015.      programming language Lisp, many GPers tend to use Lisp. However, this
  1016.      is simply an implementation detail. There are straightforward methods
  1017.      to implement GP using a non-Lisp programming environment.
  1018.  
  1019.      The programs in the POPULATION are  composed  of  elements  from  the
  1020.      FUNCTION  SET and the TERMINAL SET, which are typically fixed sets of
  1021.      symbols selected to be appropriate to the solution of problems in the
  1022.      domain of interest.
  1023.  
  1024.      In  GP  the  CROSSOVER  operation  is  implemented by taking randomly
  1025.      selected subtrees in the INDIVIDUALs (selected according to  FITNESS)
  1026.      and exchanging them.
  1027.  
  1028.      It should be pointed out that GP usually does not use any MUTATION as
  1029.      a GENETIC OPERATOR.
  1030.  
  1031.      More information is available in the GP mailing  list  FAQ.   (See  Q
  1032.      15.2)
  1033.  
  1034. ------------------------------
  1035.  
  1036. End of ai-faq/genetic/part2
  1037. ***************************
  1038.  
  1039.